﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using HiStaff.Domain.Sys;
using HiStaff.Domain.CO;
using System.Data;

namespace HiStaff.Service
{
    /// <summary>
    /// Service for System module - HiStaff
    /// </summary>
    [ServiceContract]
    public interface ISystem
    {
        #region system
        [OperationContract]
        List<ALL_TABLE> GetAllTable();
        [OperationContract]
        List<SY_TAB_LIST> GetAllDataList();
        [OperationContract]
        List<SY_TAB_LIST> GetDataListByUser(string userName);
        [OperationContract]
        List<SY_COLUMNS_LIST> GetColumnList(string  tableName);
        [OperationContract]
        List<SY_DEFAULT_LIST> GetDataListReturnDefault(string procname);
        [OperationContract]
        List<SY_DATA_TYPE> GetDataType();
        [OperationContract]
        List<SY_COMPARE_TYPE> GetCompareType();
        #endregion
        #region sy_user
        [OperationContract]
        List<SY_USER> GetUser(SY_USER arg);
        [OperationContract]
        bool UpdateUser(SY_USER arg);
        [OperationContract]
        bool DeleteUser(SY_USER arg);
        #endregion
        #region sy_function & sy_module
        [OperationContract]
        List<SY_FUNCTION> GetFunction(SY_FUNCTION arg);
        [OperationContract]
        List<SY_MODULE> GetModule(SY_MODULE arg);
        [OperationContract]
        List<SY_FUNC_TYPE> GetFunctionType();
        #endregion
        #region save struct data list
        [OperationContract]
        bool SaveTableList(SY_TAB_LIST parameter);
        [OperationContract]
        bool SaveColumnsList(DataTable parameter);
        [OperationContract]
        bool CreateTableDataList(string tableName);
        [OperationContract]
        bool CreateUpdateStore(string tableName);
        [OperationContract]
        bool CreateDeleteStore(string tableName);
        [OperationContract]
        bool CreateSelectStore(string tableName);
        #endregion
        #region data list
        #endregion
    }
}
